package com.liuyu.ssm.controller;

import com.liuyu.ssm.bean.User;
import com.liuyu.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;
import java.util.Map;

/**
 * Date:2020-10-09 18:35
 * Author:Alex
 * Description：控制层
 */
@Controller
public class UserController {

    @Autowired
    private UserService userService;

    /**
     *查询所有的用户信息 即列表功能
     * @param map
     * @return
     */
    @RequestMapping("/users")
    private String getAllUsers(Map<String,Object> map){
        //获取所有的用户信息
        List<User> allUsers = userService.getAllUsers();
        //将获取的用户信息在请求域中共享
        map.put("allUsers",allUsers);
        //跳转到显示页面
        return "allusers";
    }

    /**
     * 添加和修改用户信息
     * @param user
     * @return
     */
    @RequestMapping(value = "/user",method = {RequestMethod.POST,RequestMethod.PUT})
    public String addUser(User user){
        //判断传过来的参数是否为null
        if (user.getId()==null){
            //如果为null则执行添加功能
            //添加用户信息
            userService.addUser(user);
        }
        userService.updateUser(user);
        //添加或修改成功后 重定向到列表功能
        return "redirect:/users";
    }

    /**
     * 根据id 删除用户信息
     * @param userId
     * @return
     */
    @RequestMapping(value = "/user/{userId}",method = RequestMethod.DELETE)
    public String deleteUser(@PathVariable("userId") Integer userId){
        //删除id用户信息
        userService.deleteUser(userId);
        //删除成功后 重定向到列表功能
        return "redirect:/users";
    }

    /**
     * 通过id 查询用户信息 用于回显
     * @return
     */
    @RequestMapping("/toUpdate/{userId}")
    public String updateUser(@PathVariable("userId") Integer userId,Map<String,Object>map){
      //获取用户信息
        User user = userService.getUser(userId);
        //将获取到的用户信息在请求域中共享
        map.put("user",user);
        //跳转到修改页面
        return "updateUser";
    }
}
